package managedbean;


import fr.afcepf.atod16.groupe1.projet1.dto.catalogue.DtoProduit;
import fr.afcepf.atod16.groupe1.projet1.dto.util.DtoProduitPanier;
import fr.afcepf.atod16.groupe1.projet1.service.ServiceProduitLocal;
import java.util.ArrayList;
import java.util.HashMap;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;

/**
 *
 * @author G
 */
@ManagedBean(name = "mbPanier")
@SessionScoped
public class MbPanier {
    
    @EJB
    private ServiceProduitLocal service;
    private ArrayList<DtoProduitPanier> produitsList = new ArrayList<DtoProduitPanier>();
    public MbPanier() {
    }


    @PostConstruct
    public void init(){
    }
    
    public int calculerPrixTotal(){
        int prixTotal = 0;
        for(DtoProduitPanier p : produitsList){
            prixTotal += (p.getProduitVignette().getPrix() * p.getQuantite());
        }
        return prixTotal;
    }
    
    public void ajouterProduit(Integer id){
        boolean produitTrouver = false;
        String message = " ajouté au panier";
        for(DtoProduitPanier p : produitsList){
            if(p.getProduitVignette().getId() == id){
                p.setQuantite(p.getQuantite()+1);
                produitTrouver = true;
                message = p.getProduitVignette().getNom() + message;
                break;
            }
        }
        if(!produitTrouver){
            DtoProduitPanier p = service.getProduitPanier(id);
            produitsList.add(p);
            message = p.getProduitVignette().getNom() + " ajouté au panier";
        }
        FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(message)); 
    }
    
    public void retirerProduit(DtoProduitPanier p){
        produitsList.remove(p);
        FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(p.getProduitVignette().getNom()+" retiré du panier")); 
    }
    
    public void modifierQuantiteProduit(Integer id,Integer quantite){
            for(DtoProduitPanier p : produitsList){
            if(p.getProduitVignette().getId() == id){
                p.setQuantite(quantite);
                break;
            }
    }                
    }
    
    public String valider(){
        throw new UnsupportedOperationException();
    }

    public ArrayList<DtoProduitPanier> getProduitsList() {
        return produitsList;
    }

    public void setProduitsList(ArrayList<DtoProduitPanier> produitsList) {
        this.produitsList = produitsList;
    }
    
}   
    